package com.neo.push.server.connection;

import com.neo.push.core.Receipt;
import com.neo.push.core.connection.SocketConnection;
import com.neo.push.server.listener.TimeoutEventListener;

import java.util.concurrent.TimeUnit;

/**
 * Created by lock on 17-8-2.
 *
 * 表示一个消息可以安全到达的连接
 *
 */
public interface SafetyMessageConnection extends SocketConnection,TimeoutEventListener{


    /**
     * 能够处理消息回执
     * @param receipt
     */
    void handleReceipt(Receipt receipt);

    /**
     * 返回消息超时的单位
     * @return
     */
    TimeUnit timeoutUnit();

    /**
     * 返回消息超时的单位
     * @return
     */
    int timeout();


    /**
     * 是否需要保持当前消息到达
     * @return
     */
    boolean isHoleMessage();

}
